package com.cserver.pro.service.impl;


import com.cserver.pro.dao.YqBaseinfoDao;
import com.cserver.pro.entity.YqBaseinfo;
import com.cserver.pro.service.YqBaseinfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.Cacheable;

import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;

import java.util.List;


/**
 * 疫情基本信息表(YqBaseinfo)表服务实现类
 *
 * @author makejava
 * @since 2020-02-19 10:21:29
 */
@Service("yqBaseinfoService")
public class YqBaseinfoServiceImpl implements YqBaseinfoService {
    @Autowired
    private YqBaseinfoDao yqBaseinfoDao;

//    @Autowired
//    private StringRedisTemplate redisTemplate;

    /**
     * 通过ID查询单条数据
     *
     * @param yqId 主键
     * @return 实例对象
     */
    @Override
    public YqBaseinfo queryById(Long yqId) {
        return this.yqBaseinfoDao.queryById(yqId);
    }

    /**
     * 查询多条数据
     *
     * @param offset 查询起始位置
     * @param limit 查询条数
     * @return 对象列表
     */
    @Cacheable(value = "l001")
    @Override
    public List<YqBaseinfo> queryAllByLimit(int offset, int limit) {
//        redisTemplate.opsForValue().set("yaowww1","大时代");
//        System.out.println("ssssssssss---->"+redisTemplate.getClientList());
//        redisTemplate.opsForList().rightPush("list",this.yqBaseinfoDao.queryAllByLimit(offset, limit));
//        System.out.println(redisTemplate.opsForList().range("list",0,-1));
//        List<YqBaseinfo> listYqBaseinfo =null;
//        if(redisTemplate!=null&&redisTemplate.hasKey("l001")){
//            System.out.println("缓存中");
//            listYqBaseinfo= redisTemplate.opsForList().range("l001",0,-1);
//
//        }else{
//            System.out.println("数据库");
//            listYqBaseinfo=this.yqBaseinfoDao.queryAllByLimit(offset, limit);
//            redisTemplate.opsForList().rightPushAll("l001",listYqBaseinfo);
//            redisTemplate.expire("l001",60, TimeUnit.SECONDS);
//        };
        return this.yqBaseinfoDao.queryAllByLimit(offset, limit);
//        return listYqBaseinfo;
    }

    /**
     * 新增数据
     *
     * @param yqBaseinfo 实例对象
     * @return 实例对象
     */
    @Override
    public YqBaseinfo insert(YqBaseinfo yqBaseinfo) {
        this.yqBaseinfoDao.insert(yqBaseinfo);
        return yqBaseinfo;
    }

    /**
     * 修改数据
     *
     * @param yqBaseinfo 实例对象
     * @return 实例对象
     */
    @Override
    public YqBaseinfo update(YqBaseinfo yqBaseinfo) {
        this.yqBaseinfoDao.update(yqBaseinfo);
        return this.queryById(yqBaseinfo.getYqId());
    }

    /**
     * 通过主键删除数据
     *
     * @param yqId 主键
     * @return 是否成功
     */
    @Override
    public boolean deleteById(Long yqId) {
        return this.yqBaseinfoDao.deleteById(yqId) > 0;
    }
}